home *** CD-ROM | disk | FTP | other *** search
-
-
-
- IXTRACE(1) IXTRACE(1)
-
-
- NNAAMMEE
- ixtrace - a tracer for ixemul.library
-
- SSYYNNOOPPSSIISS
- iixxttrraaccee [ --aa ] [ --ii ] [ --mm ] [ --ll ] [ --vv ] [ --ww ] [ --zz ] [
- --cc syscall name ] [ --nn N ] [ --oo logfile ] [ --pp pid ] [ --ss
- syscall-number ]
-
- DDEESSCCRRIIPPTTIIOONN
- _I_x_t_r_a_c_e is a utility that reports every call that is made
- to the _i_x_e_m_u_l_._l_i_b_r_a_r_y. Since it scans every call made
- through the library base, it catches even more calls than
- for example SnoopDOS.
-
- Obviously, tracing support slows down _a_l_l clients of the
- library (as each call is now routed through a trace func-
- tion). For this reason there are two library versions.
- _I_x_e_m_u_l_._l_i_b_r_a_r_y itself doesn't contain tracing support.
- Using the tracer with this library gives a "Function not
- implemented" error. To use the _i_x_t_r_a_c_e utility, you should
- use the _i_x_e_m_u_l_._t_r_a_c_e library instead of _i_x_e_m_u_l_._l_i_b_r_a_r_y.
- See UUSSAAGGEE for more detailed instructions.
-
- The option most often used is --mm, as the library uses
- _s_i_g_s_e_t_m_a_s_k_(_) a lot internally, and mentioning this call
- again and again would just clutter the screen.
-
- OOPPTTIIOONNSS
- --aa Print all calls, even those considered `not inter-
- esting': internal stdio-calls and 32 bit arithmetic
- emulation for 68000, for example.
-
- --ii Normally, the tracer shows a function call when
- that function returns, to be able to display the
- return value (and _e_r_r_n_o in parenthesis). When --ii is
- specified, it always displays the function on
- entry, instead of on exit. See BBUUGGSS for current
- problems if you invoke _i_x_t_r_a_c_e without the --ii
- option.
-
- --mm Skip _s_i_g_s_e_t_m_a_s_k_(_) calls. This function is used
- extensively inside the library, and will in most
- cases just clutter the tracer output.
-
- --ll List _a_l_l system calls to stdout. No more need to
- look up a call you want to trace in the
- include/sys/syscall.def file.
-
- --vv Print the current _v_e_r_s_i_o_n number.
-
- --ww Wipe out the syscalls you _D_O_N_'_T want to trace.
-
- --zz Allows the input of _s_y_s_c_a_l_l _n_a_m_e_s that the user
- wants to trace.
-
-
-
- 1
-
-
-
-
-
- IXTRACE(1) IXTRACE(1)
-
-
- --cc Only print calls to a specific system call, by
- name. Differs from _-_s , which expects a syscall
- number.
-
- --nn Skip the first _N traces.
-
- --oo Specify a logfile. If --oo is omitted, output goes to
- _s_t_d_o_u_t.
-
- --pp Only print output from a specific process. You have
- to provide the decimal address of the process.
- Default is to scan all current _i_x_e_m_u_l_._l_i_b_r_a_r_y
- clients.
-
- --ss Only print calls to a specific system call. You
- have to specify the system call number as found in
- <<ssyyss//ssyyssccaallllss..ddeeff>>.
-
- UUSSAAGGEE
- Before you can use _i_x_t_r_a_c_e, you will first have to flush
- the old _i_x_e_m_u_l_._l_i_b_r_a_r_y out of the system. The Workbench
- option FFlluusshhLLiibbss can do that for you, AAvvaaiill FFLLUUSSHH achieves
- the same from a shell. This assumes no currently running
- process is using the library.
-
- Next make sure the system loads _i_x_e_m_u_l_._t_r_a_c_e instead of
- _i_x_e_m_u_l_._l_i_b_r_a_r_y next time it starts a program that uses
- _i_x_e_m_u_l_._l_i_b_r_a_r_y
-
- You can do that by replacing _i_x_e_m_u_l_._l_i_b_r_a_r_y with
- _i_x_e_m_u_l_._t_r_a_c_e. You can also use LLooaaddLLiibb iixxeemmuull..ttrraaccee. But
- LLooaaddLLiibb is not an official CLI command.
-
- Now Start the tracer (probably in its own window). You
- should now see a log of all functions called from your
- program(s), and some functions called as a consequence of
- your functions from inside the library. A typical output
- line is:
-
- $$77558888779900:: <<ssttrrccmmpp((""ffoooo"",, --nn ))==5577 ((00))
-
-
- $$77558888779900
- This is the process address.
-
- << Type of log, << means on exit, >> means on entry.
-
- ssttrrccmmpp((""ffoooo"",, --nn ))
- The function with the parameters.
-
- ==5577 The result of the function.
-
- ((00)) The value of _e_r_r_n_o.
-
-
-
-
- 2
-
-
-
-
-
- IXTRACE(1) IXTRACE(1)
-
-
- BBUUGGSS
- There seems to be some race condition, that can result in
- deadlock when running without the --ii flag.
-
- Currently, if trace-on-exit is enabled, the function is
- called with 16 arguments, no matter how many arguments you
- passed to it. This should be enough for 99% of all appli-
- cations, but you may have more than 16 arguments to a
- _p_r_i_n_t_f_(_) somewhere.
-
- Functions returning more than a 4 byte result do _n_o_t work
- unless you specify the --ii option!
-
- HHIISSTTOORRYY
- Adapted by David Zaroski from the original RREEAADDMMEE written
- by Markus Wild.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
-
-
-